/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cl.innovision.helper.utils;

import cl.innovision.vo.shema.ventanas.Ventanas;
import cl.innovision.vo.shema.ventanas.Ventanas.Ventana;
import cl.innovision.vo.shema.ventanas.Ventanas.Ventana.Componentes.Componete;
import java.io.File;
import java.util.logging.Logger;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

/**
 *
 * @author PATO
 */
public class ListVentanas {

     private static ListVentanas singleton = null;
     private static Ventanas ventanas = null;

    public static Ventanas getVentanas() {
        return ventanas;
    }

    public static void setVentanas(Ventanas ventanas) {
        ListVentanas.ventanas = ventanas;
    }
     
     
    public static ListVentanas getInstance() throws Exception {
        if (singleton == null) {
            singleton = new ListVentanas() ;
        }
        return singleton;
    }
     
     
    public ListVentanas() {
         ventanas=new Ventanas();
         try {
 
		File file = new File("Ventanas.xml");
		JAXBContext jaxbContext = JAXBContext.newInstance(Ventanas.class);
 
		Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
		ventanas = (Ventanas) jaxbUnmarshaller.unmarshal(file);
		System.out.println("Xml Ventanas Cargado !");
 
	  } catch (JAXBException e) {
		e.printStackTrace();
	  }
    }

    public static void guardaArchivo()  {
         try {
 
		File file = new File("Ventanas.xml");
		JAXBContext jaxbContext = JAXBContext.newInstance(Ventanas.class);
		Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
 
		// output pretty printed
		jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
 
		jaxbMarshaller.marshal(ventanas, file);
		jaxbMarshaller.marshal(ventanas, System.out);
                System.out.println("Xml Ventanas Guardado !");
	      } catch (JAXBException e) {
		e.printStackTrace();
	      }
 
    }
    
    
   public static Ventana getVentanas(int i)  { 
        return ventanas.getVentana().get(i);
    }
    
    public static void setVentana(Ventana ventana)  { 
        for(Ventana v : ventanas.getVentana())
            if(v.getNombreVentana().equals(ventana.getNombreVentana()))
            {
                System.out.println("Update Ventana: "+ ventana.getNombreVentana());
                ventanas.getVentana().set(ventanas.getVentana().indexOf(v), ventana);
                guardaArchivo();
                return;
            }
        System.out.println("Nueva Ventana: "+ ventana.getNombreVentana());
        ventanas.getVentana().add(ventana);
        guardaArchivo();
    }
      
     /*  public static Ventana getVentanas(int i)  { 
        return ventanas.getVentana().get(i);
    }
    
    public static void setVentana(Componete componente)  { 
        for(Ventana v : Componete.getVentana())
            if(v.getNombreVentana().equals(componente.getNombreVentana()))
            {
                System.out.println("Update Ventana: "+ ventana.getNombreVentana());
                ventanas.getVentana().set(ventanas.getVentana().indexOf(v), ventana);
                guardaArchivo();
                return;
            }
        System.out.println("Nueva Ventana: "+ ventana.getNombreVentana());
        ventanas.getVentana().add(ventana);
        guardaArchivo();
    }
          */      

}
